package com.itheima.health.dao;

import com.github.pagehelper.Page;
import com.itheima.health.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * @author ：seanyang
 * @date ：Created in 2019/7/1
 * @description ：角色Dao
 * @version: 1.0
 */
public interface RoleDao {
	/*
	 * @Author:hujunwei
	 * @功能:通过用户id查询角色信息
	 * @date: 2019/7/30
	 * @param id
	 * @return java.util.Set<com.itheima.health.pojo.Role>
	 */
	Set<Role> findByUserId(@Param("id") Integer id);

	/*
	 * @Author:hujunwei
	 * @功能:查询所有的角色列表
	 * @date: 2019/7/30
	 * @param
	 * @return java.util.List<com.itheima.health.pojo.Role>
	 */
	List<Role> findAll();

	/*
	 * @Author:hujunwei
	 * @功能:基于条件，获取角色列表（基于分页插件实现分页）
	 * @date: 2019/7/29
	 * @param queryString
	 * @return com.github.pagehelper.Page<com.itheima.health.pojo.Role>
	 */
	Page<Role> selectByCondition(@Param("queryString") String queryString);

	/*
	 * @Author:hujunwei
	 * @功能:新增角色
	 * @date: 2019/7/29
	 * @param role
	 * @param permissionIds
	 * @return com.itheima.health.entity.Result
	 */
    void add(Role role);

    /*
     * @Author:hujunwei
     * @功能:基于id删除角色
     * @date: 2019/7/30
     * @param id
     * @return void
     */
    void deleteById(Integer id);

    /*
     * @Author:hujunwei
     * @功能:删除角色和权限的中间表
     * @date: 2019/7/30
     * @param id
     * @return void
     */
	void deleteRoleAndPermissionByRoleId(Integer id);

	/*
	 * @Author:hujunwei
	 * @功能:编辑更新角色信息
	 * @date: 2019/7/30
	 * @param role
	 * @return void
	 */
	void edit(Role role);

	/*
	 * @Author:hujunwei
	 * @功能:通过角色id，删除角色与菜单表的中间表信息
	 * @date: 2019/7/30
	 * @param id
	 * @return void
	 */
    void deleteRoleAndMenuByRoleId(Integer id);

    Integer[] findByRoleId(Integer id);

    Integer[] findtmenuIdsByRoleId(Integer id);
}
